Lịch sử Echo (lệnh)

echo có nguồn gốc từ Multics. Sau khi nó được viết bằng C bởi Doug McIlroy làm "bài tập luyện phím" và cho thấy công dụng, nó trở thành một phần của Version 2 Unix. echo -n được dùng trong Version 7 thay cho prompt, (hoạt động giống echo nhưng không kết thúc đầu ra bằng ký tự dòng mới).[17]

Trên PWB/UNIX và sau này là Unix System III, echo bắt đầu mở rộng những chuỗi escape C như \n với một điểm khác biệt: các chuỗi escape bát phân được viết dưới dạng \0ooo thay vì \ooo trong C.[18]

echo trong Research Unix chỉ mở rộng escape khi có flag -e,[19] và hành vi đó được sao chép bởi một số triển khai khác như lệnh echo builtin của Bash hay zsh và GNU echo.

Trên MS-DOS, dòng lệnh có sẵn từ phiên bản 2 trở về sau.[20]

Hiện nay, một số triển khai echo không tương thích tồn tại trong các hệ điều hành khác nhau, thậm chí trong cùng một hệ điều hành; một số mặc định mở rộng chuỗi escape, một số không, một số nhận lựa chọn, một số không.

Tiêu chuẩn POSIX quy định echo[21] có hành vi không xác định nếu argument đầu tiên là -n hoặc bất kỳ argument nào chứa ký tự backslash trong khi tiêu chuẩn Unix yêu cầu mở rộng (một số) chuỗi escape và không cho phép xử lý lựa chọn. Trong thực tế, nhiều triển khai echo không tuân thủ tiêu chuẩn trong môi trường mặc định của chúng.

Vì những hành vi khác nhau này, echo được coi là lệnh bất khả chuyển trong các hệ thống giống Unix[22]lệnh printf (nếu có, xuất hiện trong Unix 9) là lựa chọn được khuyên dùng.

Liên quan

Tài liệu tham khảo

WikiPedia: Echo (lệnh) http://www.flexusergroup.com/flexusergroup/pdfs/sw... http://software.intel.com/en-us/articles/efi-shell... http://www.jatomes.com/Help/Os2Bat.php#ECHO http://www.teamnaconsulting.com/compresources/pdfs... http://www.in-ulm.de/~mascheck/various/echo+printf... http://www.cs.dartmouth.edu/~doug/reader.pdf http://zsh.sourceforge.net/Doc/Release/Shell-Built... http://archive.org/details/1988-rugheimer-spanik-a... http://www.bitsavers.org/pdf/digitalResearch/flexo... http://man.cat-v.org/inferno/1/echo